gQuickDraw GX ObjectsContentsFigures, Tables, and ListingsAbout This BookIntroduction to
QuickDraw GXObjects and QuickDraw GX How QuickDraw GX Defines Objects'Advantages of an Object-Based StructureKinds of QuickDraw GX Objects
Shape ObjectsFigure 1-1 QuickDraw GX objects
Other ObjectsObject PropertiesAFigure 1-2 Properties of QuickDraw GX objects ***to be revised***Default ObjectsObjects and Memory*Application Memory and QuickDraw GX Memory&Sharing and Multiple Object ReferencesOwner CountCloningUnshared Objects*Automatic Loading and Unloading of Objects8Direct Access to Object Structure: Locking and Unlocking9Objects and External Storage: Flattening and Unflattening+Objects and Tags: Adding Custom InformationObjects and Printing'Objects and the Programming EnvironmentError-Handling$Debugging and Non-Debugging VersionsDebugging With GraphicsBug*Programming Consistencies and Conveniences.Table 1-1 Convenience constants for parameters%Relationship to the Macintosh Toolbox
Shape ObjectsAbout QuickDraw GX Shapes3Figure 2-1 Basic components of a QuickDraw GX shapeAbout Shape ObjectsShape Properties.Figure 2-2 The shape object and its properties
Shape Type Table 2-1 Shape types(continued)Shape Geometry
Shape Fill Table 2-2 Shape fills(continued)%Figure 2-3 Even-odd and winding fills:Table 2-3 Valid shape fills for each shape type(continued)Shape Attributes%Table 2-4 Shape attributes(continued)The Initial Default ShapeSaving and Restoring ShapesUsing Shape Objects'Creating and Manipulating Shape Objects%Getting and Setting the Default Shape$Creating and Deleting a Shape Object0Determining the Size of a Shape Object in Memory-Copying, Comparing, and Cloning Shape ObjectsCaching Shape Objects#Loading and Unloading Shape Objects$Manipulating Shape Object Properties?Getting and Setting a Shape Object’s Type, Fill, and Attributes.Copying the Geometry From One Shape to Another>Getting and Setting a Shape Object’s Style, Ink, and Transform-Resetting a Shape Object’s Default Properties)Manipulating a Shape Object’s Owner Count3Getting and Setting a Shape Object’s Tag References*Converting Shapes From One Type to Another$Directly Manipulating Shape Geometry"Flattening and Unflattening ShapesDrawing and Hit-Testing Shapes+Shape-Related Functions Described Elsewhere@Table 2-5 Shape-related functions described elsewhere(continued)Shape Objects Reference
Data TypesThe Shape Object
Shape Type
Shape FillShape Attributes
Flatten FlagsSpool Block Functions(Creating and Manipulating Shape Objects GXGetDefaultShapeGXSetDefaultShape
GXUnlockShapeGXGetShapeStructureGXChangedShape*Flattening and Unflattenting Shape ObjectsGXFlattenShapeGXUnflattenShapeDrawing and Hit-Testing ShapesGXDrawShapeGXHitTestShape#Application-Supplied Spool Function+MySpoolProc [application-supplied function]Summary of Shape Objects
Style ObjectsAbout Style ObjectsStyle Properties.Figure 3-1 The style object and its propertiesThe Default StyleUsing Style Objects'Creating and Manipulating Style Objects$Creating and Deleting a Style Object-Copying, Comparing, and Cloning Style Objects#Loading and Unloading Style Objects$Manipulating Style Object Properties-Resetting a Style Object’s Default PropertiesCGetting and Setting a Style Object’s Attributes and Text Attributes)Manipulating a Style Object’s Owner Count3Getting and Setting a Style Object’s Tag References+Style-Related Functions Described Elsewhere@Table 3-1 Style-related functions described elsewhere(continued)Style Objects Reference
Data TypesThe Style Object Functions'Creating and Manipulating Style Objects
GXNewStyleGXDisposeStyle
GXCopyToStyleGXEqualStyleGXCloneStyle$Manipulating Style Object PropertiesGXResetStyleGXGetStyleOwnersGXGetStyleTagsGXSetStyleTagsSummary of Style Objects Colors and Color-Related ObjectsAbout Color in QuickDraw GXColor SpacesLuminance-Based Color Spaces Figure 4-1 Luminance color space@Table 4-1 Luminance-based color spaces supported by QuickDraw GX@Figure 4-2 Storage formats for two luminance-based color spaces RGB-Based Color SpacesFigure 4-3 RGB color space?Table 4-2 RGB color spaces supported by QuickDraw GX(continued)4Figure 4-4 Storage formats for five RGB color spaces.Figure 4-5 HSV color space and HLS color space?Table 4-3 Hue/saturation color spaces supported by QuickDraw GX>Figure 4-6 Storage formats for two hue/saturation color spaces/Figure 4-7 The I and Q axes in YIQ color space6Table 4-4 Video color spaces supported by QuickDraw GX5Figure 4-8 Storage formats for two video color spacesCMYK-Based Color Spaces%Figure 4-9 Colors in CMYK color space;Table 4-5 CMYK-based color spaces supported by QuickDraw GX;Figure 4-10 Storage formats for two CMYK-based color spacesUniversal Color SpacesFigure 4-11 CIE color spaceETable 4-6 Universal color spaces supported by QuickDraw GX(continued):Figure 4-12 Storage formats for two universal color spacesIndexed Color Spaces7Table 4-7 Indexed color space supported by QuickDraw GX2Figure 4-13 Storage format for indexed color space Color Spaces With Alpha Channels<Figure 4-14 Showing color transparency with an alpha channel0Color-Component Values, Color Values, and Colors4Color Conversion, Color Matching, and Color Profiles7Figure 4-15 Color gamuts for two devices (in CIE space)Color Profiles>Figure 4-16 Profile chromaticities for a device (in CIE space)1Figure 4-17 A profile response curve for a deviceWhen Color Matching OccursColor-Matching MethodsNFigure 4-18 Maintaining lightness and maintaining saturation in color matchingAbout Color Set ObjectsColor Set Properties3Figure 4-19 The color set object and its propertiesColor values In a Color SetAbout Color Profile ObjectsColor Profile Properties7Figure 4-20 The color profile object and its properties"Chromaticities and Response CurvesColor Profile Attributes"Table 4-8 Color profile attributesThe Default Color ProfileCTable 4-9 Chromaticities for the QucikDraw GX default color profile&Using Colors and Color-Related ObjectsAssigning Colors to ShapesComparing and Testing ColorsConverting and Matching Colors=Creating and Manipulating Color Set and Color Profile Objects2Creating and Deleting a Color Set or Color Profile=Copying, Comparing, and Cloning Color Sets and Color Profiles3Loading and Unloading Color Sets and Color Profiles?Manipulating Object Properties of Color Sets and Color Profiles,Getting and Setting Color Profile AttributesManipulating Owner Counts"Getting and Setting Tag References-Manipulating the Colors in a Color Set Object:Manipulating Profile Information in a Color Profile Object3Loading and Unloading Color Sets and Color Profiles*Colors and Color-Related Objects ReferenceConstants and Data TypesColor-Component ValuesColor ValuesThe Color Structure
Color PackingColor SpacesThe Color Set ObjectThe gxSetColor UnionThe Color Profile ObjectColor Profile Attributes$The Profile Chromaticities StructureThe Profile Response StructureColor FunctionsGXCheckColorGXGetColorDistanceGXCombineColorGXConvertColorColor Set Functions+Creating and Manipulating Color Set ObjectsGXGetDefaultColorSetGXSetDefaultColorSet
GXNewColorSetGXDisposeColorSetGXCopyToColorSetGXEqualColorSetGXCloneColorSet)Manipulating Color Set Object PropertiesGXGetColorSetOwnersGXGetColorSetTagsGXSetColorSetTags.Retrieving and Replacing Colors in a Color Set
GXGetColorSet
GXSetColorSetGXGetColorSetPartsGXSetColorSetPartsColor Profile Functions/Creating and Manipulating Color Profile ObjectsGXGetDefaultColorProfileGXSetDefaultColorProfileGXNewColorProfileGXDisposeColorProfileGXCopyToColorProfileGXEqualColorProfileGXCloneColorProfile,Manipulating Color Profile Object PropertiesGXGetColorProfileAttributesGXSetColorProfileAttributesGXGetColorProfileOwnersGXGetColorProfileTagsGXSetColorProfileTags,Retrieving and Replacing Profile InformationGXGetColorProfileGXSetColorProfile+Summary of Colors and Color-Related ObjectsInk ObjectsAbout Ink ObjectsInk Properties,Figure 5-1 The ink object and its properties Ink ColorInk Transfer ModeInk AttributesTable 5-1 Ink attributesThe Default InkAbout Transfer ModesTransfer Mode TypesArithmetic Transfer Modes$Figure 5-2 Arithmetic transfer modes6Figure 5-3 Blend example with different operand valuesBoolean Transfer Modes!Figure 5-4 Boolean transfer modesPseudo-Boolean Transfer Modes(Figure 5-5 Pseudo-Boolean transfer modesHighlight Transfer Mode"Figure 5-6 Highlight transfer modeAlpha-Channel Transfer Modes'Figure 5-7 Alpha-channel transfer modesTransfer Mode Color SpacePFigure 5-8 Automatic conversion of color values during a transfer mode operationColor LimitsBFigure 5-9 Maximum and minimum color-component values in RGB space?Figure 5-10 How minimum and maximum color values affect drawingJFigure 5-11 The effects of reversing maximum and minimum in a color spaceSource Color Limits8Figure 5-12 The effect of source color limits on drawingDestination Color Limits=Figure 5-13 The effect of destination color limits on drawingResult Color Limits8Figure 5-14 The effect of result color limits on drawingMatricesFlagsComponent FlagsTransfer Mode Flags"Summary of Transfer Mode Operation.Figure 5-15 Summary of transfer mode operationUsing Ink Objects%Creating and Manipulating Ink Objects#Creating and Deleting an Ink Object+Copying, Comparing, and Cloning Ink Objects!Loading and Unloading Ink Objects"Manipulating Ink Object Properties.Getting and Setting an Ink Object’s Attributes(Manipulating an Ink Object’s Owner Count2Getting and Setting an Ink Object’s Tag References*Getting and Setting an Ink Object’s Color 1Getting and Setting an Ink Object’s Transfer ModeWorking With Transfer Modes&Simple Source-to-Destination Transfers$Drawing Selected Parts of the Source,Preserving Selected Parts of the DestinationCopying or Preserving LuminanceModifying Luminance$Isolating and Modifying Color RangesMaskingPartial Transparency
Anti-AliasingTransfer Modes and PrintingInk Objects ReferenceConstants and Data TypesInk Attributes%Component Modes (Transfer Mode Types)Transfer Mode FlagsTransfer Component FlagsThe Ink ObjectColor StructureTransfer Mode StructureTransfer Component Structure Functions%Creating and Manipulating Ink ObjectsGXNewInkGXDisposeInkGXCopyToInk
GXEqualInk
GXCloneInk"Getting and Setting an Ink’s Color
GXGetInkColor
GXSetInkColorGXGetShapeColorGXSetShapeColor*Getting and Setting an Ink’s Transfer ModeGXGetInkTransferGXSetInkTransferGXGetShapeTransferGXSetShapeTransfer"Manipulating Ink Object Properties
GXResetInkGXGetInkAttributesGXSetInkAttributesGXGetShapeInkAttributesGXSetShapeInkAttributesGXGetInkOwnersGXGetInkTagsGXSetInkTagsSummary of Ink ObjectsTransform ObjectsAbout Transform ObjectsTransform Object Properties2Figure 6-1 The transform object and its propertiesClipFigure 6-2 A transform clipMapping+Figure 6-3 Effects of the transform mappingHit-Test ParametersCreating Transform Objects.Default Values for Transform Object Properties-Mapping Operations With Shapes and TransformsUsing Transform Objects+Creating and Manipulating Transform ObjectsGetting and Setting View Ports*Listing 6-1 Getting and setting view ports%Copying and Cloning Transform ObjectsControlling Clipping3Constructive Geometry Operations on Transform Clips4Figure 6-4 Transform operations on a clip by a shapeHit TestingPerforming Mapping OperationsMoving Transforms and ShapesRotating, Scaling, and Skewing Transform Objects ReferenceConstants and Data TypesTransform ObjectMapping MatrixHit-Test Parts Functions+Creating and Manipulating Transform ObjectsGXNewTransformGXDisposeTransformGXCopyToTransformGXEqualTransformGXCloneTransform(Manipulating Transform Object PropertiesGXResetTransform GXGetTransformOwners GXGetTransformTags GXSetTransformTags &Getting and Setting a Transform’s ClipGXGetTransformClip GXSetTransformClip GXGetShapeClip GXSetShapeClip )Getting and Setting a Transform’s MappingGXGetTransformMapping GXSetTransformMapping GXGetShapeMapping GXSetShapeMapping ,Getting and Setting a Transform’s View PortsGXGetTransformViewPorts GXSetTransformViewPorts GXGetShapeViewPorts GXSetShapeViewPorts 5Getting and Setting a Transform’s Hit Test ParametersGXGetTransformHitTest GXSetTransformHitTest GXGetShapeHitTest GXSetShapeHitTest 3Constructive Geometry Operations on Transform ClipsGXIntersectTransform GXUnionTransform GXDifferenceTransform GXReverseDifferenceTransform GXExcludeTransform +Performing Mapping Operations on TransformsGXMoveTransform GXMoveTransformTo GXRotateTransform GXScaleTransform GXSkewTransform GXMapTransform 1Performing Mapping Operations on Shape GeometriesGXMoveShape GXMoveShapeTo GXRotateShape
GXScaleShape GXSkewShape
GXMapShapeSummary of Transform ObjectsView-Related Objects/About View Ports, View Devices, and View Groups4Figure 7-1 View-related objects and their properties Figure 7-2 View ports in windows.Figure 7-3 View ports overlapping view devicesFigure 7-4 Offscreen view groupAbout View PortsView Port PropertiesTable 7-1 View port attributesDithersFigure 7-5 Dither levels HalftonesFigure 7-6 Halftone angleFigure 7-7 Halftone frequencyFigure 7-8 Halftone method+Using the color mixture to specify the tintFigure 7-9 Halftone tintAbout View DevicesView Device Properties Table 7-2 View device attributesAbout View GroupsView Group PropertiesAbout Coordinate SpacesGeometry SpaceLocal SpaceGlobal Space6Figure 7-10 View-related objects in global coordinatesDevice SpaceAbout View Port Hierarchies4Mapping and Clipping for View Ports and View DevicesFigure 7-11 View port hierarchyUsing View-Related Objects)Setting Up a Window’s View Port Hierarchy/Listing 7-1 Setting up a view port for a window/Setting up Offscreen View Groups and View Ports8Listing 7-2 Setting up a view port for offscreen drawing!Changing a View Port’s PropertiesBListing 7-3 Changing a view port’s dither, attributes and halftoneChanging a View Port’s Mapping*Listing 7-4 Changing a view port’s mappingView-Related Objects ReferenceConstants and Data TypesThe View Port Object The View Device ObjectThe View Group ObjectView Port AttributesView Device Attributes Halftones Dot Types
Tint TypesView Port Functions+Creating and Manipulating View Port Objects
GXNewViewPortGXDisposeViewPortGXCopyToViewPortGXEqualViewPort(Manipulating View Port Object PropertiesGXGetViewPortClipGXSetViewPortClipGXGetViewPortMappingGXSetViewPortMappingGXGetViewPortGlobalMappingGXGetViewPortDitherGXSetViewPortDitherGXGetViewPortHalftoneGXSetViewPortHalftoneGXGetHalftoneDeviceAngleGXGetViewPortViewDevicesGXGetViewPortViewGroupGXSetViewPortViewGroupGXGetViewPortAttributesGXSetViewPortAttributesGXGetViewPortTagsGXSetViewPortTags"Manipulating View Port HierarchiesGXGetViewPortParentGXSetViewPortParentGXGetViewPortChildrenGXSetViewPortChildren%Determining the View Ports of a ShapeGXGetShapeGlobalViewPortsView Device Functions-Creating and Manipulating View Device ObjectsGXNewViewDeviceGXDisposeViewDeviceGXCopyToViewDeviceGXEqualViewDevice*Manipulating View Device Object PropertiesGXGetViewDeviceClipGXSetViewDeviceClipGXGetViewDeviceMappingGXSetViewDeviceMappingGXGetViewDeviceBitmapGXSetViewDeviceBitmapGXGetViewDeviceViewGroupGXSetViewDeviceViewGroupGXGetViewDeviceAttributesGXSetViewDeviceAttributesGXGetViewDeviceTagsGXSetViewDeviceTags'Determining the View Devices of a ShapeGXGetShapeGlobalViewDevices-Analyzing and Hit-Testing a Shape on a DeviceGXGetShapeLocalBoundsGXGetShapeGlobalBoundsGXGetShapeDeviceBoundsGXGetShapeDeviceAreaGXGetShapeDeviceColorsGXHitTestDeviceView Group Functions,Creating and Manipulating View Group ObjectsGXNewViewGroupGXDisposeViewGroup)Manipulating View Group Object PropertiesGXGetViewGroupViewPortsGXGetViewGroupViewDevicesSummary of View-Related ObjectsTag ObjectsAbout Tag ObjectsTag Properties,Figure 8-1 The tag object and its properties Tag types6Table 8-1 Defined tag types for tag objects(continued)Uses for Tag ObjectsUsing Tag Objects%Creating and Manipulating Tag Objects"Creating and Deleting a Tag Object+Copying, Comparing, and Cloning Tag Objects!Loading and Unloading Tag Objects"Manipulating Tag Object Properties8Getting and Setting a Tag Object’s Tag Type and Contents'Manipulating a Tag Object’s Owner Count)Directly Manipulating Tag Object Contents'Attaching Tags to a QuickDraw GX ObjectTag Objects ReferenceConstants and Data TypesThe Tag Object Functions%Creating and Manipulating Tag ObjectsGXNewTagGXDisposeTagGXCopyToTag
GXEqualTag
GXCloneTag"Manipulating Tag Object PropertiesGXGetTagGXSetTagGXGetTagOwners.Directly Manipulating the Data in a Tag Object GXLockTagGXUnlockTagGXGetTagStructureSummary of Tag ObjectsGlossaryIndex